package com.ftg.learn.day08;

import java.nio.charset.Charset;
import java.util.Arrays;

/**
 * 学习字符串
 *
 * @author kangjx
 * @version 1.0
 * @date 2023/7/21 上午10:30
 */
public class String01 {

    static int a = 9;
    int b = 13;

    public static void q1(){

    }

    public void q2(){

    }

    public static void main(String[] args) {
        String01 s = new String01();
        s.q2();
//        方法 「类方法  | 实例方法 」

        //非实例化方法  静态方法  类方法
        q1();
        //new 实例化 - > 对象 a1 引用
        String a1  = new String();

        String b1 = new String("abc1");


        String c1 = new String(new char[]{'a','b','c','d'},2,2);
        //任意一个字符串常量  常数 代表string实例
        String d1 = "abc";

        // 基本类型表示値是否相同，引用表示地址是否为同一段
        System.out.println(b1 == d1);
        System.out.println(b1.intern() == d1);
        System.out.println(b1 == d1);

        // boolean  eqauls 相等 是否相等

        // equals 是引用类型下面的一个方法
        // 这个引用类型，可以重新编写equals以实现不同的功能
        //如string 表示判断内容是否完成一样，不考虑地址
        //如果没有重写这个方法 ，那么（继承）来自于顶层类的Object正下面的equals，用以判断地址是否相同

        int[] a = {1};
        int[] b = {1};


        //object

        System.out.println(a.equals(b));

        String str2 = new String("abc");

        String str3 = "abc";

        //优化问题 ：new StringBuilder();
        String s1 = "c";
        String str4 = "ab" + s1;

        String str5 = "a" + "b" +"c";


        System.out.println(str3 == str4);
        System.out.println(str3 == str5);

//        == equals  intern  +

//        常见方法
//       {1,2,3,4,5,6} {3,4}
        System.out.println("fjdklsajfkldsklfjdklsjlfks".contains("abc"));

        System.out.println("".length());
//        gbk  gb2312
//      utf-8 3
        System.out.println("中".getBytes(Charset.forName("gbk")).length);
        System.out.println(Arrays.toString("中".getBytes()));
        System.out.println("abc".charAt(2));
        System.out.println("abcd".indexOf("cd",3));

        System.out.println("张三".startsWith("张"));
        System.out.println(Arrays.toString("2023-07-21".split("-")));
        System.out.println(Arrays.toString("abc".split("")));
        System.out.println(Arrays.toString("abc".toCharArray()));

        System.out.println("abcdccdcc".replace("c", "-"));

//        一个  三个字节  8位
//            [01111111] [] []

        //可变字符序列

    }

}
